#include "ComunicadorGraficoServidor.h"

void ComunicadorGraficoServidor::run()
{
    try
    {
        this->working = true ;
        this->EmpezarComunicacion() ;
        while(this->running)
        {
            std::string msj;
            unsigned int ret = this->Messenger.recibirMensaje(msj) ;
            if ( ret == 0 ){ throw MyException("Conexion off con server"); }
            if ( !this->running ){ break; }
            std::string answer = OK;
            ret = this->Messenger.enviarMensaje(answer);
            if ( ret == 0 ){ throw MyException("Conexion off con server"); }
            Byte_Tiempo BT(msj);
            this->GI.AgregarDataDeBytesEnFuncDelTiempo(BT);
            this->GI.dibujar();
        }
        std::string msj = FIN;
        unsigned int ret = this->Messenger.enviarMensaje(msj);
        if ( ret == 0 ){ throw MyException("Conexion off con server"); }
        this->DetenerComunicacion();
        syslog(LOG_INFO,"El ComunicadorGraficoServidor terminó pacificamente");
    }
    catch(MyException& e)
    {
        std::cout << e.what() << std::endl;
        syslog (LOG_ERR,e.what());
        this->DetenerComunicacion();
    }
        this->working=false;
}
